package aynu.oracle.video.service;

import aynu.oracle.video.pojo.Author;
import aynu.oracle.video.pojo.Category;
import aynu.oracle.video.pojo.Video;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IVideoService {

    // 添加一条视频记录
    int insertVideo(Video video);

    // 获取所有视频记录
    List<Video> selectAllVideo(Integer index,Integer size);

    // 根据ID获取某条视频记录
    Video selectVideoById(Integer id);

    // 点击数+1
    int addNumberOfHits(Integer id);

    // 修改封面图片
    int updateCoverPic(Integer id, String videoCoverPic);

    // 通过审核
    int videoIsAudio(@Param("ids") Integer[] ids);

    // 删除视频记录
    int deleteVideoById(Integer[] ids);

    // 查询热门视频
    List<Video> selectHotsVideo(Integer index,Integer size);

    // 按照类别分页查询
    List<Video> selectVideoByCategory(@Param("videoCategory") Integer videoCategory,
                                      @Param("index") Integer index,
                                      @Param("size") Integer size);

    // 按照所属老师进行查询
    List<Video> selectVideoByAuthor(@Param("videoAuthor") Integer videoAuthor,
                                    @Param("index") Integer index,
                                    @Param("size") Integer size);

    // 根据视频id修改视频其他信息
    int updateVideoOtherInfo(Video video);

    // 根据用户查询未审核通过的视频
    List<Video> selectVideoByUserAndNotAudio(@Param("videoUser") Integer videoUser,
                                             @Param("index") Integer index,
                                             @Param("size") Integer size);

    // 查询 老师 的类别
    List<Author> selectVideoAuthor();

    // 查询全部类别
    List<Category> selectVideoAllCategory();

    // 获取总数目
    int selectVideoCount();

    // 根据用户ID获取总数目
    int selectVideoCountByVideoUser(Integer videoUser);

}
